// 获取匹配结果 >>>
var str = 'Hello world!'

var reg = /l/
var res = reg.exec(str)
console.log(res) // [ 'l', index: 2, input: 'Hello world!', groups: undefined ]

reg = /a/
var res = reg.exec(str)
// 没有匹配结果，返回 null
console.log(res) // null
// 获取匹配结果 <<<

// 使用 () 获取匹配结果中的指定内容 >>>
reg = /{{([\w]+)}}/
str = '{{name}}'
res = reg.exec(str)
console.log(res) // [ '{{name}}', 'name', index: 0, input: '{{name}}', groups: undefined ]
// 使用 () 获取匹配结果中的指定内容 <<<

// 模拟插值表达式 >>>
var template = `
<div>
  <p>{{ name }}</p>
  <p>{{ age }}</p>
</div>
`
var data = {
  name: '张智琦',
  age: 18
}
reg = /{{[\s]*([\w]+)[\s]*}}/
while ((res = reg.exec(template))) {
  // res[0]: {{ name }}
  // res[1]: name
  template = template.replace(res[0], data[res[1]])
}
/**
 * <div>
 *   <p>张智琦</p>
 *   <p>18</p>
 * </div>
 */
console.log(template)
// 模拟插值表达式 <<<
